# 使用官方的 Golang 镜像作为基础镜像
FROM golang:latest

# 定义变量
ARG port=5679
ARG project=lottery

# 定义环境变量
ENV project=${project}
ENV port=${port}

# 在容器内创建一个目录来存放应用代码
RUN mkdir /app

# 切换工作目录
WORKDIR /app

# 先拷贝 go.mod / go.sum 并下载依赖，提高缓存命中率
COPY go.mod ./
RUN go env -w GOPROXY=https://goproxy.io,direct \
    && go mod download

# 再拷贝剩余的源代码
COPY . .

# 编译 Go 应用程序
RUN go build -o myapp .

# 暴露端口
EXPOSE ${port}

# 运行应用程序
CMD ["./myapp"]